Modified auto remote agent for job scheduling and management applications

ABSTRACT

A system and method for scheduling and managing computer applications is provided. In one embodiment, an event processor dispatches messages to run a job to an agent module residing on a local or remote node. The agent module, upon receiving the messages, spawns processes to run the job, returning status notifications of the running job to the event processor.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 60/486,589 entitled MODIFIED AUTO REMOTE AGENT FOR JOBSCHEDULING AND MANAGEMENT APPLICATIONS filed on Jul. 11, 2003, theentire disclosure of which is incorporated herein by reference.

TECHNICAL FIELD

This application relates generally to computer systems, and moreparticularly to scheduling and managing computer processes.

BACKGROUND

Remote agents running on remote machines typically require or depend onthe database vendor client software on the remote nodes. Furtherdependence on a specific operating system service burdens many databasesystem management procedures. Accordingly, an agent that does not dependon specific database vendor client software or specific operatingsystems to improve job scheduling and management application isdesirable.

SUMMARY

System and method for automatic remote agent used for job scheduling andmanaging application processes are provided. In one aspect, the methodincludes receiving a message from an event processor to initiate a jobon a node. The agent spawns a child process on the node to run the job.Upon completion of the job, whether successfully terminated or an erroroccurred, the child process exits. The agent receives the statusassociated with the job from the child process and sends the status, forexample, so that a database of jobs can be updated.

The system in one aspect includes an event processor operable toretrieve one or more jobs from a database. The one or more jobs arescheduled to be run on a node whether remote or local. An agent moduleresiding on the node receives the one or more jobs from the eventprocessor. The agent module creates a child process to run the job onthe node. The agent module receives status of the job from the childprocess.

Further features as well as the structure and operation of variousembodiments are described in detail below with reference to theaccompanying drawings. In the drawings, like reference numbers indicateidentical or functionally similar elements.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating the components of the presentdisclosure in one embodiment.

FIG. 2 is a block diagram illustrating the components of the presentdisclosure in detail in one embodiment.

FIG. 3 is a flow diagram illustrating the method of the presentdisclosure in one embodiment.

DETAILED DESCRIPTION

The present disclosure provides a modified remote agent such as theauto_remote used, for instance, with job scheduling and managementapplications such as the Unicenter AutoSys Job Management application.FIG. 1 is a block diagram illustrating the components of the presentdisclosure in one embodiment. The modified remote agent of the presentdisclosure in one embodiment includes two processes, for example, ar0102 and arx 104, that do not rely on operating system services such asthe inet_d service, and that do not use database vendor client softwareon the node running the modified remote agent. Briefly, inet_d refers toa daemon program that listens for connection requests or messages forselected ports and starts server programs to perform the servicesassociated with those ports.

In this embodiment, the ar0 process 104 receives messages from the eventprocessor 102, forks an arx process 106 and passes an event processormessage to the arx process 106. The arx process 106 then forks andexec's the child fork into the client job 108 to be run on the remotenode. The parent arx process 106 passes a running event notification tothe ar0 process 104 and the ar0 104 passes that event directly back tothe event processor 102. The Event processor 102 may pass the results toa database system 110. In another aspect, the ar0 process 104 maydirectly communicate or pass the results to a database system 110. Inone embodiment, event processor 102, ar0, 104, arx 106 and job 108 arethread processes.

When the client job 108 terminates, the arx 106 catches the exit code ofthe child process 108, creates and passes a termination event to the ar0process 104 at which point the arx process 106 terminates and the ar0104 passes that termination event back to the event processor 102. Ar0104 also then terminates.

In this ways, the event processor need not contact the operating systeminet_d service to fork and exec the child fork into the pre-existingauto remote agent. Thus, an embodiment of the present disclosure removesthe operating system service from this process and uses the ar0 processinstead. By not using inet_d, various security issues are alleviated.

The present application also handles events generated by the autoremote. The pre-existing auto remote would use the database vendorclient software to gain a database connection and insert the running andtermination events into the job scheduling and management application'sdatabase. Job scheduling and management applications access thisinformation from the database. However, these raw events wereunprocessed and needed to be extracted from the database for processingby the event processor. An embodiments of the present applicationutilize the arx 106 and ar0 104 to pass the events directly to the eventprocessor 102 for processing. The intermediate step has been bypassed.In the present application, there is no need to gain the databaseconnection by the remote agent, and the intermediate insertion andretrieval into the database are not needed.

In one embodiment, the present application provides a remote agent thatdoes not require the database vendor client software on the remotenodes. For example, Sybase™ and Oracle™ could be supported databasesupon whose reliance the present application seeks to rid on the remotenodes.

FIG. 2 is a block diagram illustrating the components of the presentdisclosure in detail in one embodiment. Event processor 202 receives orretrieves events, for example, from a database server 208. The eventprocessor 202 dispatches the event to an event handler 210, for example,using its dispatcher component 204. The event handler 210 passes theevent to an ar0 process 212. The ar0 212, in this embodiment, may act asan inetd proxy. Ar0 212 may be started when a system starts.

Ar0 212 then spawns an arx 214, for example, using a fork system call.Arx 214 acks start_rem_job, acknowledging that it is running a job, andfor instance, puts the running event into a database, for example, a jobscheduling database table that holds events. The event handler 210 sendsto the database 208, marks, and processes STARTING event notification.The event handler 210 also sends encrypted jobs associated with theevent to ar0 212. Ar0 212 dispatches encrypted jobs to appropriate arx214. Arx 214 forks and executes the job 216. Arx 214 sends RUNNING eventto a recv events thread 206 of the event processor 202.

Recv events thread 206 sends the same event to the dispatcher 204, whichsends the event to the event handler 210. Event handler 210 marks, putsthe RUNNING event in event table, and processes RUNNING, for example,prepares for submission to database. Then the event handler 210 acks ar0212. Arx 214 catches signal, for example, SIGCLD, from the childprocess, arx job 216, upon termination of the arx job 216. Arx 214 thensends TERM event to recv events thread 206 of the event processor 202.Arx 214 may send the TERM event to database 208 or a server process ofthe event processor 202.

In one embodiment, arx 214 is an auto_remote which runs inetd-lessand/or, database-less.

FIG. 3 is a flow diagram illustrating the method of the presentdisclosure in one embodiment. At 302, ar0 receives a message to start ajob. The message, for example, may be from an event processor thread.Ar0 may reside on a local or remote node from the thread that sent themessage. At 304, ar0 forks a process and runs arx. Ar0 also sends arunning status message back to the message sender, for instance, anevent processor thread. Optionally, the ar0 may send a message to anevent processor server or to a database that holds event stateinformation. At 306, arx executes a job associated with the message.When the job completes, ar0 receives exit status of the job and sendsthe status to the thread that sent the message at 308.

The system and method of the present disclosure may be implemented andrun on a general-purpose computer. For example, the system and methodmay be implemented as set of computer instructions to be stored oncomputer memory units and executed on the computer processor. Theembodiments described above are illustrative examples and it should notbe construed that the present invention is limited to these particularembodiments. Thus, various changes and modifications may be effected byone skilled in the art without departing from the spirit or scope of theinvention as defined in the appended claims.

1. An auto remote agent method for job scheduling and managementapplications, comprising: receiving a message from an event processor toinitiate a job on a node; spawning a child process on the node; causingthe child process to run the job; receiving status associated with thejob from the child process; providing the status for updating a databasethat includes one or more states of one or more jobs.
 2. The method ofclaim 1, wherein the node is located remotely from the event processor.3. The method of claim 1, wherein the node is located locally from theevent processor.
 4. The method of claim 1, wherein the database islocated remotely from the node.
 6. The method of claim 1, wherein thedatabase is located locally from the node.
 7. The method of claim 1,wherein the database is located remotely from the event processor. 8.The method of claim 1, wherein the database is located locally from theevent processor.
 9. An auto remote agent system for job scheduling andmanagement applications, comprising scheduling and managing computerapplications, comprising: an event processor operable to retrieve one ormore jobs from a database, the one or more jobs scheduled to be run on anode; and an agent module residing on the node, the agent moduleoperable to receive the one or more jobs from the event processor, theagent module further operable to create a process to run the job on thenode, the agent module further operable to send one or more statusmessages associated with the job running on the node.
 10. The system ofclaim 9, wherein the node is located remotely from the event processor.11. The system of claim 9, wherein the node is located locally from theevent processor.
 12. The system of claim 9, wherein the agent modulesends the one or more status message to the event processor.
 13. Thesystem of claim 9, wherein the agent module sends the one or more statusmessages to the database.
 14. The system of claim 9, wherein the agentnode is a daemon process running on the node.
 15. The system of claim 9,wherein the agent node spawns a child process to run the job.
 16. Aprogram storage device readable by machine, tangibly embodying a programof instructions executable by the machine to perform an auto remoteagent method for job scheduling and management applications, comprising:receiving a message from an event processor to initiate a job on a node;spawning a child process on the node; causing the child process to runthe job; receiving status associated with the job from the childprocess; providing the status for updating a database that includes oneor more statuses of one or more jobs.
 17. The program storage device ofclaim 16, wherein the node is located remotely from the event processor.18. The program storage device of claim 16, wherein the node is locatedlocally from the event processor.
 19. The program storage device ofclaim 16, wherein the agent module sends the one or more status messageto the event processor.
 20. The program storage device of claim 16,wherein the agent module sends the one or more status messages to thedatabase.